package com.zyl.blog.processing.service;

import com.zyl.blog.common.domain.file.bean.EditorContent;

/**
 * @version v1.0
 * @ProjectName: Personal_Blog_Server
 * @Package: com.zyl.blog.processing.service
 * @ClassName: MarkdownService
 * @Description:
 * @Author FinalFantasy
 * @Date 2025/8/14-13:24
 */
public interface MarkdownService {

    /**
     * 将Markdown转换为HTML
     * @param markdownContent Markdown内容
     * @return HTML内容
     */
    String convertMarkdownToHtml(String markdownContent);

    /**
     * 保存Markdown内容
     * @param content Markdown内容
     * @param title 标题
     * @param authorId 作者ID
     * @param referenceId 关联ID
     * @param referenceType 关联类型
     * @return 保存的内容实体
     */
    EditorContent saveMarkdownContent(String content, String title, Long authorId,
                                      Long referenceId, String referenceType);

    /**
     * 根据ID获取内容
     * @param contentId 内容ID
     * @return 内容实体
     */
    EditorContent getContentById(Long contentId);

    /**
     * 将Markdown导出为PDF
     * @param contentId 内容ID
     * @param userId 用户ID
     * @return 生成的PDF文件ID
     */
    Long exportMarkdownToPdf(Long contentId, Long userId);

    /**
     * 将Markdown导出为Word
     * @param contentId 内容ID
     * @param userId 用户ID
     * @return 生成的Word文件ID
     */
    Long exportMarkdownToWord(Long contentId, Long userId);

    /**
     * 更新内容版本
     * @param contentId 内容ID
     * @param newContent 新内容
     * @return 更新后的内容实体
     */
    EditorContent updateContent(Long contentId, String newContent);
}